
// 使用array.reduce
/**
 * array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
    total	必需。初始值, 或者计算结束后的返回值。
    currentValue	必需。当前元素
    currentIndex	可选。当前元素的索引
    arr	可选。当前元素所属的数组对象。
    initialValue	可选。传递给函数的初始值
 * @type {string}
 */
let str =  'aaaaabbbcccccc'

//1.将字符串转为数组，每一个字符为数组一项
let arr = str.split('')


//2.遍历数组，计算相同字符的个数，输出的是完整的对象
let obj  = arr.reduce((result,curValue)=>{
   if( result[curValue]){
       result[curValue]++
   }else{
       result[curValue] = 1
   }
   return result
},{})

console.log(obj)

//3.遍历对象，找到出现次数最多的字符的次数
var max = 0;
for (var key in obj) {
    if (max < obj[key]) {
        max = obj[key];   //max始终储存次数最大的那个
    }
}
for (var key in obj) {
    if (obj[key] == max) {
        //console.log(key);
        console.log("最多的字符是" + key);
        console.log("出现的次数是" + max);
    }
}

